# -*- coding: utf-8 -*-
import sys
import nltk
import csv
from prettytable import PrettyTable

# arquivo que contém as conexões que foram exportadas
CSV_FILE = 'C:\Users\dauster\Desktop\FG.MIneracao de dados\linkedln\linkedin_connections_export_microsoft_outlook.csv'

# complementos encontrados em alguns cargos
transforms = [
    ('Sr.', 'Senior'),
    ('Sr', 'Senior'),
    ('Pl', 'Pleno'),
    ('Pl.', 'Pleno),
    ('Jr.', 'Junior'),
    ('Jr', 'Junior'),
    ('CEO', 'Chief Executive Officer'),
    ]

# lê o arquivo e pesquisa a coluna com referencias aos cargos
csvReader = csv.DictReader(open(CSV_FILE), delimiter=',', quotechar='"')
contatos = [row for row in csvReader]
Cargos = []
for contato in contatos:
    Cargos.extend([t.strip() for t in contato['Job Title'].split('/')
                  if contato['Job Title'].strip() != ''])
# substitui os complementos por sua verdadeira descrição

for i in range(len(Cargos)):
    for transform in transforms:
        Cargos[i] = Cargos[i].replace(*transform)

# cria uma tabela contendo duas colunas
pt = PrettyTable(field_names=['Cargo', 'Frequencia'])
pt.align['Cargo']='l'
#agrupa os cargos de acordo com sua frequência
fdist = nltk.FreqDist(Cargos)
[pt.add_row([Cargo, Frequencia]) for (Cargo, Frequencia) in fdist.items() if Frequencia > 1]
print(pt)
# lê o arquivo e pesquisa a coluna com referencias aos cargos
tokens = []
for Cargo in Cargos:
    tokens.extend([t.strip(',') for t in Cargo.split()])
# cria uma tabela contendo duas colunas  
pt = PrettyTable(field_names=['Token', 'Frequencia'])
pt.align['Token']='l'
#agrupa os cargos de acordo com sua frequência
fdist = nltk.FreqDist(tokens)
[pt.add_row([token, Frequencia]) for (token, Frequencia) in fdist.items() if Frequencia > 1
 and len(token) > 2]
print(pt)
